function ret = timerPlotIvols( obj, event, yieldCurve, openInterestMap )
    tic;
    q = 0;
    N = 7;
    tolerance = 0.08;
    ticker_letters = 'OBX';
    S = getDoubleFromUrl( 'http://localhost:8678/quotes/OBX.OSE', 17 ); %Get last trade
    % yieldCurve = YieldCurve( raw2 );
    % r = yieldCurve.getSpotRate( T, datestr(now-20) );
    r = [2.37	2.50	2.68  2.75 ] / 100;
    
    year_letter = num2str( year(now)-2010 );
    Call_Letter = [ char( month(now)+0+64 ) char( month(now)+1+64 ) char( month(now)+2+64 ) char( month(now)+3+64 )];
    Put_Letter = [ char( month(now)+0+76 ) char( month(now)+1+76 ) char( month(now)+2+76 ) char( month(now)+3+76 )];
    

    
%Process data
for j = 1:length(Call_Letter)
    T = getDecimalExpiration( strcat([ticker_letters year_letter Call_Letter(j)]) );
    r2 = yieldCurve.getSpotRate( T );
    call_string = '';
    put_string = '';
    ATM_strike = S-mod(S,5);
    K = ATM_strike-5*N:5:ATM_strike+5*N;
    for i = 1:length(K)
        call_string = strcat( [call_string ticker_letters year_letter Call_Letter(j) num2str(K(i)) '.OMFE&'] );
        put_string = strcat( [put_string ticker_letters year_letter Put_Letter(j) num2str(K(i)) '.OMFE&'] );
    end

    call_data = urlread( strcat(['http://localhost:8678/quotes/' call_string]) );
    put_data = urlread( strcat(['http://localhost:8678/quotes/' put_string]) );

    call_prices = getDoublesFromUrl( call_data, [6 10 17] );
    [row_ind col_ind] = find( call_prices<0.00001 );
    call_prices( row_ind, col_ind ) = NaN;
    
    put_prices = getDoublesFromUrl( put_data, [6 10 17] );
    [row_ind col_ind] = find( put_prices<0.00001 );
    put_prices( row_ind, col_ind ) = NaN;
    
    ivols_c = [blsImpVolCall( S*ones(length(K),1), K.', r(j), T, call_prices(:,1) , q, tolerance )...
        blsImpVolCall( S*ones(length(K),1), K.', r(j), T, call_prices(:,2) , q, tolerance )...
        blsImpVolCall( S*ones(length(K),1), K.', r(j), T, mean(call_prices(:,1:2),2) , q, tolerance)...
        blsImpVolCall( S*ones(length(K),1), K.', r(j), T, call_prices(:,3) , q, tolerance)];

    ivols_p = [blsImpVolPut( S*ones(length(K),1), K.', r(j), T, put_prices(:,1) , q, tolerance )...
        blsImpVolPut( S*ones(length(K),1), K.', r(j), T, put_prices(:,2) , q, tolerance )...
        blsImpVolPut( S*ones(length(K),1), K.', r(j), T, mean(put_prices(:,1:2),2) , q, tolerance )...
        blsImpVolPut( S*ones(length(K),1), K.', r(j), T, put_prices(:,3) , q, tolerance )];

    returnMat_c = computePotentialWinLoss( S*ones(length(K),1) - K.', call_prices(:,1:2) );
    returnMat_p = computePotentialWinLoss( S*ones(length(K),1) - K.', put_prices(:,1:2) );
    
%     h = gcf;
%     figure(h)
    figure(1)
    subplot(2,2,j)
    plot( K, ivols_c(:,3),'b.-' )
    hold on
    plot( K, ivols_p(:,3),'r.-' )
    plot( K, ivols_c(:,1),'b:' )
    plot( K, ivols_c(:,2),'b:' )
    plot( K, ivols_p(:,1),'r:' )
    plot( K, ivols_p(:,2),'r:' )
    plot( K, ivols_c(:,4),'b+' )
    plot( K, ivols_p(:,4),'r+' )
    axis([K(1) K(end) 0.1 0.3]);
    hold off
    xlabel('Strike')
    ylabel('Implied Vol.')
%     legend('Call Mid','Put Mid','C Bid', 'C Offer', 'P Bid', 'P Offer')
%     legend('boxoff')


% %     openInterestMat = getOpenInterest( openInterestMap, year_letter, Put_Letter(j), Call_Letter(j), K );
% % %     openInterestMat = randn( length(K),2);
% % %     
% %     figure(2)
% %     subplot(2,2,j)
% %     [AX1,H11,H21] = plotyy( K, returnMat_c(:,3),K, openInterestMat(:,1), 'plot');
% %     hold on
% %     [AX2,H12,H22] = plotyy( K, returnMat_p(:,3),K, openInterestMat(:,2), 'plot');
% %     set(H11,'LineStyle','-','Color','b','Marker','.')
% %     set(H12,'LineStyle','-','Color','r','Marker','.')
% %     set(H21,'LineStyle',':','Color','b','Marker','.')
% %     set(H22,'LineStyle',':','Color','r','Marker','.')
% %     hold off
% %     xlabel('Strike')
%     ylabel('Implied Vol.')
    
end


    toc
    ret1 = 1;